]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
AirplaneMode: don't show a "Turn off" item if HW enabled
authorGiovanni Campagna <gcampagna@src.gnome.org>
Tue, 8 Oct 2013 21:34:33 +0000 (23:34 +0200)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Tue, 4 Feb 2014 21:24:00 +0000 (22:24 +0100)
If airplane mode is enabled with an HW switch, we can't turn it
off from the menu, so make the menu item insensitive and
replace it with a helpful tip.

https://bugzilla.gnome.org/show_bug.cgi?id=709685

js/ui/status/rfkill.js

index 487e05fec835e09925841e6ec4c780eb3dd2451d..2be7bf981bb97e95c1f230ea767c792d9929c264 100644 (file)
@@ -12,6 +12,7 @@ const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill';
 const RfkillManagerInterface = '<node> \
 <interface name="org.gnome.SettingsDaemon.Rfkill"> \
 <property name="AirplaneMode" type="b" access="readwrite" /> \
+<property name="HardwareAirplaneMode" type="b" access="read" /> \
 </interface> \
 </node>';
 
@@ -45,7 +46,7 @@ const Indicator = new Lang.Class({
         this._item = new PopupMenu.PopupSubMenuMenuItem(_("Airplane Mode"), true);
         this._item.icon.icon_name = 'airplane-mode-symbolic';
         this._item.status.text = _("On");
-        this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
+        this._offItem = this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
             this._proxy.AirplaneMode = false;
         }));
         this._item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop');
@@ -54,7 +55,15 @@ const Indicator = new Lang.Class({
 
     _sync: function() {
         let airplaneMode = this._proxy.AirplaneMode;
+        let hwAirplaneMode = this._proxy.HardwareAirplaneMode;
+
         this._indicator.visible = airplaneMode;
         this._item.actor.visible = airplaneMode;
+        this._offItem.setSensitive(!hwAirplaneMode);
+
+        if (hwAirplaneMode)
+            this._offItem.label.text = _("Use hardware switch to turn off");
+        else
+            this._offItem.label.text = _("Turn Off");
     },
 });